const fs = require('fs');
const path = require('path');

// 源目录和目标目录
const srcDir = path.join(__dirname, 'src/main');
const destDir = path.join(__dirname, 'dist/main');

// 确保目标目录存在
if (!fs.existsSync(destDir)) {
  fs.mkdirSync(destDir, { recursive: true });
}

// 复制文件函数
function copyFile(src, dest) {
  fs.copyFileSync(src, dest);
  console.log(`Copied: ${src} -> ${dest}`);
}

// 递归复制目录函数
function copyDir(src, dest) {
  // 确保目标目录存在
  if (!fs.existsSync(dest)) {
    fs.mkdirSync(dest, { recursive: true });
  }
  
  // 读取源目录中的所有文件和子目录
  const entries = fs.readdirSync(src, { withFileTypes: true });
  
  // 遍历并复制
  for (const entry of entries) {
    const srcPath = path.join(src, entry.name);
    const destPath = path.join(dest, entry.name);
    
    if (entry.isDirectory()) {
      // 如果是目录，递归复制
      copyDir(srcPath, destPath);
    } else {
      // 如果是文件，直接复制
      copyFile(srcPath, destPath);
    }
  }
}

// 开始复制
console.log('Building main process...');
copyDir(srcDir, destDir);
console.log('Main process build complete!');